<?php

namespace app\index\validate;
use app\index\model\User as UserModel;
use think\Validate;

class User extends Validate
{
    /**
     * 定义验证规则
     * 格式：'字段名'	=>	['规则1','规则2'...]
     *
     * @var array
     */	
    
	protected $rule = [
        'mobile|手机号'=>['require','checkAccount','mobile'],
        'password|密码'=>['require','checkPassword'],
    ];
    
    /**
     * 定义错误信息
     * 格式：'字段名.规则名'	=>	'错误信息'
     *
     * @var array
     */	
    protected $message = [
        'mobile.mobile' => '手机格式不正确', 
        'mobile.require' => '请输入手机号',
        'password.require' => '请输入密码',
    ];
   
    public function checkAccount($account){

        $user = UserModel::where('mobile', $account)->find();
        if($user){
            return '手机号已存在!';
        }
        return true;
    }
    
    protected function checkPassword($password){
        $password = UserModel::decrypt($password);
        if($password === false)
            return 'error';
        if(empty($password))
            return '请输入密码!';
        else if(!preg_match('/^.{6,20}$/', $password))
            return '请输入6-20位密码!';
        else if(preg_match('/^[a-zA-Z]+$/', $password))
            return '密码不能为纯字母!';
        else if(preg_match('/^[^\da-zA-Z]+$/', $password))
            return '密码不能为纯符号!';
        else if(preg_match('/\s+/', $password))
            return '密码由字符、数字和符号2种以上组成!';
        return true;
    }
}
